package com.wh.wisdomsite.xbox.us.service;


import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.wh.wisdomsite.xbox.us.entity.Office;
import org.json.JSONArray;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/***
 *部门Service
 * @author 杨世强
 * @date 10:56 2018/8/6
 * @Copyright 公司版权所有
 * @Company 贵州万华科技有限公司Copyright (c) 2016
 * @version V1.0
 */
public abstract interface IOfficeService extends IService<Office> {

    /**
     * 根据条件获取部门信息
     * @param var1
     * @return
     */
    Page<Office> getPage(Page<Office> var1, Wrapper<Office> var2);

    /**
     * 根据主键获取部门信息
     * @param id
     * @return
     */
    Office getOfficeById(Integer id);

    /**
     * 根据条件获取数据集合
     * @param var1
     * @return
     */
    List<Office> getList(Wrapper<Office> var1);

    /**
     * 构建部门层级关系
     * @param officeList
     * @return
     */
    List<Office> getMenuListForSerch(List<Office> officeList);

    /**
     * 获取部门编码
     * @param officeList
     * @param parentId
     * @return
     */
    String getOfficeCode(List<Office> officeList, Integer parentId,String compCode);

    /**
     * 根据companyId获取部门树形结构
     * @param allOfficeList
     * @param isAdmin
     * @return
     * @throws Exception
     */
    JSONArray toTreeOffice(List<Office> allOfficeList, Boolean isAdmin) throws Exception;

    /**
     * 更新子节点编码
     * @param office
     */
    void updateChildNode(Office office,Integer sessionCompId);

    /**
     * 获取Office的完整Map集合
     * @param id
     * @return
     */
    Map<String, Object> getMapById(Serializable id);





}
